var User = require("../models/user");
// 注册
// 用户注册页面
exports.showSignup = function (req, res) {
    res.render('signup', {
        title: '用户注册页面'
    })
}
// 注册接口
exports.signup = function (req, res) {
    var _user = req.body.user;
    User.findOne({ name: _user.name }, function (err, user) {
        if (err) {
            console.log(err)
        }
        if (user) { // 用户存在
            return res.redirect('/signin')
        } else {
            var user = new User(_user);
            user.save(function (err, user) {
                if (err) {
                    console.log(err)
                }
                res.redirect('/')
            })
        }
    })
}

// 登录
// 用户登录页面
exports.showSignin = function (req, res) {
    res.render('signin', {
        title: '用户登录页面'
    })
}
// 登录接口
exports.signin = function (req, res) {
    var _user = req.body.user;
    var name = _user.name;
    var password = _user.password;
    User.findOne({ name: _user.name }, function (err, user) {
        if (err) {
            console.log(err)
        } else if (!user) { // 用户不存在
            return res.redirect('/signup')
        } else { // 用户存在   比对密码
            user.comparePassword(password, function (err, isMatch) {
                if (err) {
                    console.log(err)
                } else if (isMatch) {
                    req.session.user = user
                    return res.redirect('/')
                } else if (!isMatch) {
                    return res.redirect('/signin')
                }
            })
        }
    })
}

// 退出接口
exports.logout = function (req, res) {
    delete req.session.user;
    // delete app.locals.user;
    res.redirect('/')
}

// 用户列表页
exports.list = function (req, res) {
    User.fetch(function (err, users) {
        if (err) {
            throw err
        }
        res.render("userlist", {
            title: "用户列表页",
            users: users
        });
    });
}



// midware 
exports.signinRequired = function (req, res, next) {
    var user = req.session.user;
    if (!user) { // 没有登录
        return res.redirect('/signin')
    }
    next()
}

exports.adminRequired = function (req, res, next) {
    var user = req.session.user;
    console.log(user);
    if(user.role <= 10 || !user.role){
        res.redirect('/signin')
    }

    next()
}